home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2posx10.zoo / m2posix.10 / src / posix2.dpp < prev    next >
Encoding:
Modula Definition  |  1993-08-18  |  3.8 KB  |  79 lines

  1. DEFINITION MODULE POSIX2;
  2. __DEF_SWITCHES__
  3. #ifdef HM2
  4. #ifdef __LONG_WHOLE__
  5. (*$!i+: Modul muss mit $i- uebersetzt werden! *)
  6. (*$!w+: Modul muss mit $w- uebersetzt werden! *)
  7. #else
  8. (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
  9. (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
  10. #endif
  11. #endif
  12. (*****************************************************************************)
  13. (* POSIX.2-Funktionen                                                        *)
  14. (* --------------------------------------------------------------------------*)
  15. (* 13-Aug-93, Holger Kleinschmidt                                            *)
  16. (*****************************************************************************)
  17.  
  18. (*========================= "fnmatch()" =====================================*)
  19.  
  20. CONST
  21.   FNMNoMatch = 1;
  22.  
  23. TYPE
  24.   FNMFlag = (
  25.     FNMPathname, (* Wildcards ('*', '?') und Mengen ('[...]') ``matchen''
  26.                   * nicht ueber Verzeichnisgrenzen ('/') hinweg -> (Datei)Namen
  27.                   * werden durch '/.../' begrenzt.
  28.                   *)
  29.     FNMPeriod,   (* Wildcards ('*', '?') und Mengen ('[...]') ``matchen''
  30.                   * kein fuehrendes '.' bei (Datei)Namen.
  31.                   *)
  32.     FNMNoEscape  (* Das Zeichen 'ESCAPECHAR' hebt nicht die Spezialbedeutung
  33.                   * von '*', '?', '[', ']' (und ESCAPECHAR) auf.
  34.                   *)
  35.   );
  36.  
  37.   FNMFlags = PACKEDSET OF FNMFlag;
  38.  
  39. (* nicht POSIX: *)
  40. CONST
  41.   ESCAPECHAR = 134C;
  42.   INVERTCHAR = '!';
  43.  
  44. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  45.  
  46.  PROCEDURE fnmatch ((* EIN/ -- *) REF str   : ARRAY OF CHAR;
  47.                     (* EIN/ -- *) REF pat   : ARRAY OF CHAR;
  48.                     (* EIN/ -- *)     flags : FNMFlags      ): INTEGER;
  49.  
  50. (*-------------------------------------------------------------------------
  51.  | Testet, ob das Muster <pat> auf den String <str> passt (0 = passt).     |
  52.  | Die folgenden Zeichen haben im Muster eine Spezialbedeutung:            |
  53.  |                                                                         |
  54.  |         '*': steht fuer beliebig viele (auch Null) Zeichen              |
  55.  |         '?': steht fuer genau ein beliebiges Zeichen                    |
  56.  |         '[': Leitet eine Mengendefinition ein, d.h das korrespondierende|
  57.  |              Zeichen im String muss ein Zeichen aus dieser Menge sein.  |
  58.  |         '-': Innerhalb einer Mengendefinition wird ein Bereich durch das|
  59.  |              unmittelbar davor und unmittelbar dahinter stehende Zeichen|
  60.  |              gebildet. Das korrespondierende Zeichen kann innerhalb und |
  61.  |              einschliesslich der Grenzen liegen.                        |
  62.  |              Als erstes oder letztes Element einer Menge steht es fuer  |
  63.  |              sich selbst.                                               |
  64.  |         ']': Beendet die Definition einer Menge; als erstes Element     |
  65.  |              einer Menge oder ohne ein vorausgehendes, noch nicht abge- |
  66.  |              schlossenes '[', steht es fuer sich selbst.                |
  67.  | INVERTCHAR : Als erstes Zeichen einer Mengendefinition bedeutet es, dass|
  68.  |              das korrespondierende Zeichen im String KEIN Zeichen aus   |
  69.  |              dieser Menge sein darf.                                    |
  70.  | ESCAPECHAR : Hebt die Sonderfunktion der obigen Zeichen und auch von    |
  71.  |              sich selbst auf; die uebrigen Zeichen werden nicht beein-  |
  72.  |              flusst.                                                    |
  73.  |                                                                         |
  74.  | Mit <flags> kann die Interpretation der obigen Spezialzeichen beein-    |
  75.  | flusst werden (siehe Definition von 'FNMFlag').                         |
  76.   -------------------------------------------------------------------------*)
  77.  
  78. END POSIX2.
  79.